Compactando / descompactando arquivos simultaneamente [Melhorado]
Publicado por Sandro Marcell 18/07/2007
[ Hits: 6.523 ]
Homepage: http://sanmarcell.wordpress.com
Este script compacta/descompacta arquivos simultaneamente, sem necessidade de parâmetros extras.
Ex.: nome_script arq.txt arq.pdf arq.gz arq.tar.gz
Os arquivos arq.txt e arq.pdf serão compactados; já os arquivs arq.gz e arq.tar.gz serão descompactados.
Está é a versão Shell Bash de um script Tcl que postei aqui no VOL.
Falou!!!
#!/bin/bash # # Compacte/descompacte arquivos simultaneamente. # (Versão Shell Bash) # # Autor: Sandro Marcell (sandro_marcell@yahoo.com.br) # # Uso: nome_script arquivo1 [arquivoN] # # Obs.: # É possível o uso do metacaractere (*) # São necessários os programas: tar, gzip e bzip2 # Realçando saída do comando 'echo': Echo () { echo -e "\e[1m$*\e[m" ; } # Checando parâmetros: [ -z $BASH_ARGC ] && Echo "Uso: $(basename $0) arquivo1 [arquivoN]" && exit # Simples avisos: Aguarde () { Echo "Descompactando..." ; sleep 1 ; } Aguarde2 () { Echo "Compactando..." ; sleep 1 ; } # Arquivo de log: LOG=/tmp/$(basename $0)-$USER.log # Função que testa código de retorno: Testando () { [ $? == 0 ] && Echo "Arquivo descompactado!" \ || Echo "-> Erro! Mais detalhes em $LOG" } # Início do loop: for A ; do # Testes condicionais: [ ! -e $A ] && Echo "-> Arquivo não encontrado." && continue [ ! -O $A ] && Echo "-> Acesso negado." && continue # Compactar ou descompactar? case $A in # Descompactando... *.tar.gz | *.tgz) Aguarde tar -zxf $A 2>> $LOG Testando $? ;; *.gz) Aguarde gunzip $A 2>> $LOG Testando $? ;; *.tar.bz2 | *.tbz) Aguarde tar -jxf $A 2>> $LOG Testando $? ;; *.bz2) Aguarde bunzip2 $A 2>> $LOG Testando $? ;; *) # Compactando... [ -d $A ] && { Aguarde2 tar -czf $A.tar.gz $A 2>> $LOG [ $? == 0 ] && Echo "Diretório compactado!" \ || Echo "-> Erro! Mais detalhes em $LOG" } || { Aguarde2 gzip -f9 $A 2>> $LOG [ $? == 0 ] && Echo "Arquivo compactado!" \ || Echo "-> Erro! Mais detalhes em $LOG" } ;; esac done #Fim
Dialog, script de configuração de rede
Identificando sinal de rede sem fio em modo texto
Script para configuração inicial do seu Linux
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (10)
Será que eu deveria apreender C/C++ para desenvolver para Linux? (4)